<!-- Start Instructions -->
<h1>Настройка Tomcat</h1><br><br>
<h2>Введение</h2>
<p>WebGoat распространяется с конфигурацией Tomcat по умолчанию. На данной странице вы найдёте её короткое описание и
список возможных вариантов различных настроек. В случаях когда данное описание вам не помогает обращайтесь к официальной
документации Tomcat.
Кроме того, нужно сказать что всё нижеописанное относится к стандартной конфигурации сервера работающего на 80-ом порту.
Если вы используете для сервера другой порт, то вам необходимо будет изменить конфигурацию соответствующим образом.
</p>

<h2>Стандартная конфигурация</h2>
<p>Здесь имеется две стандартных конфигурации Tomcat. При их использовании доступ к серверу можно получить обращаясь к хосту localhost.
Они полностью идентичны, за исключением того что в первом случае сервисы Tomcat запускаются на портах 80 и 443 (SSL), а во втором - 
на портах 8080 и 8443. В Linux вы должны запустить WebGoat как root или с использованием sudo если хотите чтоб он работал на портах 
80 и 443.
Помните, что запуск ПО из под root`а очень опасное занятие, поэтому мы настоятельно рекомендуем использовать порты 8080 и 8443.
В Windows вы можете запустить WebGoat.bat для работы на 80-ом порту, или же WebGoat_8080.bat для работы на порту 8080.
В Linux ту же самую работу выполняет скрипт WebGoat.sh и для того же результата его необходимо запустить либо командой
"webgoat.sh start80", либо "webgoat.sh start8080". Пользователь, для доступа к приложению,
в стандартной конфигурации - guest с паролем guest.
</p>

<h2>Настройка сервера</h2>
<p>
Если вы единственный кто будет использовать WebGoat, то стандартной конфигурации вам
будет вполне достаточно. Если же вы будете запускать его в лаборатории или классе, то конфигурацию
нужно будет менять. Перед этим советуем вам сделать её резервную копию.
</p>

<h3>Изменение портов</h3>
<p>
    Для изменения портов откройте файл server_80.xml, котрый можно найти в tomcat/conf, и измените
    не-SSL порт. Например, если вы хотите использовать порт 8079:
</p>

<pre>
	&lt;!-- Define a non-SSL HTTP/1.1 Connector on port 8079 --&gt; 
	&lt;Connector address=&quot;127.0.0.1&quot; port=&quot;8079&quot;...
</pre>
<p>
Конечно же вы можете изменить и порт SSL-соединения. Вот пример переноса SSL на порт 8442:
</p>
<pre>
	&lt;!-- Define a SSL HTTP/1.1 Connector on port 8442 --&gt; 
	&lt;Connector address=&quot;127.0.0.1&quot; port=&quot;8442&quot;... 
</pre>
<br>

<h3>Делаем WebGoat доступным для нескольких клиентов.</h3>
<p>ЭТО ОТКРЫВАЕТ ВАШ СЕРВЕР ДЛЯ РЕАЛЬНЫХ АТАК ИЗ ВНЕ! НЕ ДЕЛАЙТЕ ЭТОГО ЕСЛИ ВЫ НА 100%
    НЕ УВЕРЕНЫ В НЕОБХОДИМОСТИ ДАННОГО ШАГА. ЭТА КОНФИГУРАЦИЯ МОЖЕТ БЫТЬ ИСПОЛЬЗОВАНА ТОЛЬКО 
    В ДОВЕРЕННЫХ СЕТЯХ.
</p>
<p>По умолчанию WebGoat доступен только при обращении к хосту localhost. В лаборатории или классе
у вас может возникнуть необходимость организовать сервер с множеством клиентов. В данном случае
вы можете настроить WebGoat соответствующим образом.
</p>
<p>Причина того что WebGoat доступен только на localhost - параметр address тега Connector в файле server_80.xml.
    Изначально его значение установлено в 127.0.0.1 . При запуске приложение начинает проверять прописанные в настройках порты
    только на этом адресе и принимает соединения если они появляются. Если вы удалите данный параметр, то приложение
    начнёт прослушивать соответствующие порты на всех доступных IP-адресах.
</p>

<h3>Разрешение соединений только от определённых клиентов</h3>
<p>
Выше описывался способ разрешения соединений с WebGoat для любых клиентов. 
Если вы хотите разрешить доступ к приложению только с определённых адресов, воспользуйтесь
фильтром удалённых адресов (Remote Address Filter). Для этого добавьте следующюю строку
в файл web_80.xml:
</p>
<pre>
	&lt;Valve className=&quot;org.apache.catalina.valves.RemoteAddrValve&quot;
	allow=&quot;127.0.0.1,ip1,ip2&quot;/&gt;
</pre>
<p>В этом случае только localhost, ip1 и ip2 смогут устанавливать соединения с сервером.</p>

<h2>Стандартные пользователи WebGoat и роли для Tomcat</h2>
<p>
WebGoat`у для нормальной работы необходимо наличие следующих пользователей и ролей:
<br/>
  <pre>
  &gt;role rolename="webgoat_basic"/&lt;
  &gt;role rolename="webgoat_admin"/&lt;
  &gt;role rolename="webgoat_user"/&lt;
  &gt;user username="webgoat" password="webgoat" roles="webgoat_admin"/&lt;
  &gt;user username="basic" password="basic" roles="webgoat_user,webgoat_basic"/&lt;
  &gt;user username="guest" password="guest" roles="webgoat_user"/&lt;
  </pre>
</p>
<h2>Добавление пользователей</h2>
<p>
Обычно для нормальной работы с WebGoat вам достаточно будет пользователя guest с паролем guest.
Но когда вы развернёте его в лоборатории или классе может возникнуть необходимость создания отдельного
пользователя для каждого клиента. Для этого вам необходимо изменить файл tomcat-users.xml, которых находится в tomcat/conf.
<b>Мы настоятельно не рекомендуем хранить реальные действующие пароли в данном файле т.к.
там они прописываются в виде простого текста!</b>
</p>
<h3>Добавление пользователя</h3>
<p>
    Процедура добавления пользователя очень проста. В качестве наглядного примера вы можете использовать
    строку с пользователем guest. Помните что каждый вновь добавляемый пользователь должен иметь определённую роль.
    Для добавления новых аккаунтов впишите в вышеуказанный файл строки типа этих:
</p>
<pre>
	&lt;user name=&quot;student1&quot; password=&quot;password1&quot; roles=&quot;webgoat_user&quot;/&gt;
	&lt;user name=&quot;student2&quot; password=&quot;password2&quot; roles=&quot;webgoat_user&quot;/&gt;
	...
</pre>

<!-- Stop Instructions -->